package com.bls.lib.ui.activity;

import android.app.Activity;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

import java.lang.reflect.Method;

import static com.blankj.utilcode.util.CrashUtils.init;

/**
 * 　　  () 　　　  ()
 * 　　  ( ) 　　　( )
 * 　　  ( ) 　　　( )
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　┻　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ——————————————————
 * Created by BinglingSu on 2017/8/24.
 * <p>
 * 需要重写 getLayoutId()&&findView()   或者   重写 getLayoutView()
 */

public abstract class MvpActivity extends AppCompatActivity implements View.OnClickListener {

    protected boolean layoutStyle;//默认 false :使用xml布局     true ;使用代码布局

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initRoot();
        initMain();
        if (getLayoutId() != -1) {
            setContentView(getLayoutId());
            findView();
        } else {
            setContentView(getLayoutView());
        }
        initView();
        initListener();
        initData();
    }

    protected abstract void initRoot();

    /**
     * 初始化主要配置
     */
    protected abstract void initMain();

    /**
     * findViewById
     */
    public void findView() {

    }

   /* @Override
    public boolean onTouchEvent(MotionEvent event) {
        return false;
    }*/

    public Activity getActivity() {
        return this;
    }

    /**
     * 添加主布局文件
     *
     * @return xml布局文件
     */
    protected int getLayoutId() {
        return -1;
    }


    /**
     * 添加主布局文件
     *
     * @return 代码布局
     */
    protected View getLayoutView() {
        return null;
    }


    /**
     * 初始化view
     */
    protected abstract void initView();

    /**
     * 初始化监听事件
     */
    protected abstract void initListener();

    /**
     * 初始化数据
     */
    protected abstract void initData();

    /**
     * 设置View 的点击监听
     *
     * @param r view
     */
    protected void setOnClickLisenter(View... r) {
        for (View i : r) {
            i.setOnClickListener(this);
        }
    }

    @Override
    public void onClick(View v) {

    }
}
